Jackson লাইব্রেরির একটি গুরুত্বপূর্ণ ফিচার হলো JSON Tree Model, যা JSON ডেটার সাথে কাজ করার জন্য একটি নমনীয় ও গতিশীল উপায় প্রদান করে। এটি ObjectMapper-এর মাধ্যমে JSON ডেটাকে একটি "গাছের মতো স্ট্রাকচার" (tree-like structure) হিসেবে মডেল করে। এর সাহায্যে আপনি JSON ডেটার বিভিন্ন অংশ সরাসরি অ্যাক্সেস, সংশোধন, বা নতুন নোড যুক্ত করতে পারেন।
JSON Tree Model কিভাবে কাজ করে?
Jackson-এর JsonNode ক্লাস Tree Model তৈরি করে। এই মডেলটি JSON ডেটাকে একটি node-based structure হিসেবে উপস্থাপন করে, যেখানে প্রতিটি নোড JSON ডেটার একটি অংশ (যেমন, object, array, value) উপস্থাপন করে।
মূল বৈশিষ্ট্য:
- ডাইনামিক প্রক্রিয়াকরণ: Tree Model ব্যবহার করে JSON ডেটার সাথে সরাসরি ইন্টারঅ্যাক্ট করা যায়, যেটা POJO বা ক্লাস মডেল ছাড়াই কাজ করে।
- নেস্টেড ডেটা পরিচালনা: নেস্টেড JSON ডেটার ক্ষেত্রে Tree Model অনেক সহজ এবং কার্যকর।
- ডেটা ম্যানিপুলেশন: Tree Model JSON ডেটা পড়া, লেখা, এবং সম্পাদনার জন্য আদর্শ।
JSON Tree Model ব্যবহার করার ধাপসমূহ
- JSON ডেটা Tree Model-এ রূপান্তর:
ObjectMapperক্লাসের মাধ্যমে JSON ডেটাকে Tree Model-এ রূপান্তর করতেreadTree()মেথড ব্যবহার করা হয়। - ডেটা অ্যাক্সেস:
Tree Model-এর মাধ্যমেJsonNodeক্লাস ব্যবহার করে JSON ডেটা অ্যাক্সেস এবং সংশোধন করা যায়। - ডেটা পরিবর্তন করে JSON-এ রূপান্তর:
Tree Model থেকে পরিবর্তিত ডেটাকে JSON ফর্ম্যাটে রূপান্তর করতেwriteValueAsString()ব্যবহার করা হয়।
উদাহরণ:
১. JSON Tree Model তৈরি এবং ডেটা অ্যাক্সেস করা:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonTreeModelExample {
public static void main(String[] args) throws Exception {
String json = """
{
"id": 101,
"name": "John Doe",
"address": {
"city": "Dhaka",
"country": "Bangladesh"
},
"skills": ["Java", "Spring", "Jackson"]
}
""";
// ObjectMapper ব্যবহার করে Tree Model তৈরি
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(json);
// ডেটা অ্যাক্সেস করা
int id = rootNode.get("id").asInt();
String name = rootNode.get("name").asText();
String city = rootNode.get("address").get("city").asText();
System.out.println("ID: " + id);
System.out.println("Name: " + name);
System.out.println("City: " + city);
// Array ডেটা অ্যাক্সেস
JsonNode skillsNode = rootNode.get("skills");
for (JsonNode skill : skillsNode) {
System.out.println("Skill: " + skill.asText());
}
}
}
আউটপুট:
ID: 101
Name: John Doe
City: Dhaka
Skill: Java
Skill: Spring
Skill: Jackson
২. JSON Tree Model-এ ডেটা পরিবর্তন:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public class JsonTreeModelModification {
public static void main(String[] args) throws Exception {
String json = """
{
"id": 101,
"name": "John Doe",
"address": {
"city": "Dhaka",
"country": "Bangladesh"
}
}
""";
// ObjectMapper ব্যবহার করে Tree Model তৈরি
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(json);
// ডেটা পরিবর্তন
((ObjectNode) rootNode).put("name", "Jane Doe"); // নাম পরিবর্তন
((ObjectNode) rootNode).put("age", 30); // নতুন ফিল্ড যুক্ত
// JSON-এ রূপান্তর এবং প্রিন্ট
String modifiedJson = objectMapper.writeValueAsString(rootNode);
System.out.println(modifiedJson);
}
}
আউটপুট:
{
"id": 101,
"name": "Jane Doe",
"address": {
"city": "Dhaka",
"country": "Bangladesh"
},
"age": 30
}
JSON Tree Model-এর ভূমিকা
- ডাইনামিক ডেটা প্রসেসিং: JSON Tree Model ব্যবহার করে ডেটা ক্লাস মডেল ছাড়াই সরাসরি পরিচালনা করা যায়।
- কমপ্লেক্স নেস্টেড স্ট্রাকচার: নেস্টেড JSON ডেটার জন্য Tree Model একটি কার্যকর পদ্ধতি।
- ডেটা ম্যানিপুলেশন: Tree Model সহজে JSON ডেটা যোগ, মুছে ফেলা, বা পরিবর্তন করার ক্ষমতা প্রদান করে।
- ডেটা বিশ্লেষণ: Tree Model ডেটার বিভিন্ন অংশ বিশ্লেষণ বা অ্যাক্সেস করার জন্য আদর্শ।
JSON Tree Model একটি ফ্লেক্সিবল এবং শক্তিশালী টুল, যা Jackson-এর মাধ্যমে JSON ডেটা পরিচালনা করার সময় উন্নত নিয়ন্ত্রণ ও গতিশীলতা প্রদান করে। এটি বিশেষভাবে উপযোগী যখন JSON ডেটা পরিবর্তন বা বিশ্লেষণের প্রয়োজন হয়।
Read more